﻿/*
 * Copyright (C) 2013 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

using UnityEngine;
using UnityEditor;
using System.Collections;
using System.IO;

public class GPGSDocsUI {
    [MenuItem("Google Play Games/Documentation/Plugin Getting Started Guide...", false, 100)]
    public static void MenuItemGettingStartedGuide() {
        Application.OpenURL(GPGSStrings.ExternalLinks.GettingStartedGuideURL);
    }

    [MenuItem("Google Play Games/Documentation/Google Play Games API...", false, 101)]
    public static void MenuItemPlayGamesServicesAPI() {
        Application.OpenURL(GPGSStrings.ExternalLinks.PlayGamesServicesApiURL);
    }

    [MenuItem("Google Play Games/Downloads/Google+ SDK (iOS)...", false, 200)]
    public static void MenuItemGooglePlusSdk() {
        EditorUtility.DisplayDialog(GPGSStrings.ExternalLinks.GooglePlusSdkTitle,
                GPGSStrings.ExternalLinks.GooglePlusSdkBlurb, GPGSStrings.Ok);
        Application.OpenURL(GPGSStrings.ExternalLinks.GooglePlusSdkUrl);
    }

    [MenuItem("Google Play Games/Downloads/Google Play Games SDK (iOS)...", false, 201)]
    public static void MenuItemGooglePlayGamesSdk() {
        EditorUtility.DisplayDialog(GPGSStrings.ExternalLinks.GooglePlayGamesSdkTitle,
                GPGSStrings.ExternalLinks.GooglePlayGamesSdkBlurb, GPGSStrings.Ok);
        Application.OpenURL(GPGSStrings.ExternalLinks.GooglePlayGamesUrl);
    }

    [MenuItem("Google Play Games/Downloads/Google Play Games SDK (Android)...", false, 203)]
    public static void MenuItemGooglePlayGamesAndroidSdk() {
        // check that Android SDK is there
        string sdkPath = GPGSUtil.GetAndroidSdkPath();
        if (!GPGSUtil.HasAndroidSdk()) {
            EditorUtility.DisplayDialog(GPGSStrings.AndroidSetup.SdkNotFound,
                    GPGSStrings.AndroidSetup.SdkNotFoundBlurb, GPGSStrings.Ok);
            return;
        }

        bool launch = EditorUtility.DisplayDialog(
                GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkTitle,
                GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkBlurb, GPGSStrings.Yes,
                GPGSStrings.No);
        if (launch) {
            string exeName = sdkPath + GPGSUtil.FixSlashes("/tools/android");
            string altExeName = sdkPath + GPGSUtil.FixSlashes("/tools/android.exe");

            EditorUtility.DisplayDialog(
                GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkTitle,
                GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkInstructions,
                GPGSStrings.Ok);

            if (System.IO.File.Exists(exeName)) {
                System.Diagnostics.Process.Start(exeName);
            } else if (System.IO.File.Exists(altExeName)) {
                System.Diagnostics.Process.Start(altExeName);
            } else {
                EditorUtility.DisplayDialog(
                    GPGSStrings.ExternalLinks.GooglePlayGamesSdkTitle,
                    GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkManagerFailed,
                    GPGSStrings.Ok);
            }
        }
    }
    
//     [MenuItem("Google Play Games/About/About the Plugin...", false, 300)]
//     public static void MenuItemAbout() {
//         EditorUtility.DisplayDialog(GPGSStrings.AboutTitle, GPGSStrings.AboutText +
//             GooglePlayGames.PluginVersion.VersionString + " (" + 
//             string.Format("0x{0:X8}", GooglePlayGames.PluginVersion.VersionInt) + ")",
//             GPGSStrings.Ok);
//     }
//     
//     [MenuItem("Google Play Games/About/License...", false, 301)]
//     public static void MenuItemLicense() {
//         EditorUtility.DisplayDialog(GPGSStrings.LicenseTitle, GPGSStrings.LicenseText,
//                                     GPGSStrings.Ok);
//     }
}
